package io;

import java.io.FileOutputStream;

/**
 * @author Luka
 * @date 2021/05/27 15:39
 *
 * JAVA IO Input&Output输入和输出
 * java程序与外界减缓数据是基于IO完成的,这里输入与输出一个负责读一个负责写
 * 输入:是从外界到我们写的程序的方向,是用来从外界获取信息的.因此是"读"操作
 * 输入:是从我们写的程序到外界的方向,是用来向外界发送信息的.因此是"写"操作
 *
 * java将IO比喻为"流",可以理解为是程序与外接连接的"管道",内部流动的是字节,
 * 并且字节是顺着同一侧方向顺序移动
 *
 * java.io.InputStream输入流,这个类是所有字节输入流的超类,规定了所有字节
 * 输入流的读取数据的相关方法.
 * java.io.OutputStream输入流,这个类是所有字节输出流的超类,规定了所有字节
 * 输出流的写出数据额相关方法
 *
 * 实际应用中,我们连接不同的设备,java都专门提供了用于连接它的输入流和输出流,
 * 而这些负责实际连接设备的流称为节点流,夜尿低级流.是真实负责读写数据的流.
 * 与之对应的还有高级流,高级流可以连接其他的流,目的是当数据流经他们时,对数据
 * 做某种加工处理,用来简化我们额操作
 *
 *
 * 文件流
 * java.io.FileInputStream 和 FileOutputStream
 * 这是一对低级流,继承自InputStream和OutputStream,用于读写硬盘上的文件流
 **/
public class FOSDemo {
    public static void main(String[] args) throws Exception {
        //向当前目录下的demo.dat文件中写入数据
        /*
            FileOutputStream提供常用的构造器
            FileOutputStream(String path)
            FileOutputStream(File file)
         */
        //文件流创造时,如果改文件不存在会自动将其创建(前提是该文件所在的目录必须存在)
        FileOutputStream fos = new FileOutputStream("./demo1.dat");

        fos.write(1);
        fos.write(2);

        fos.close();
        System.out.println("执行完了");
    }
}